package com.yang.mapper;

import com.yang.pojo.*;

import java.util.List;

public interface UserITMapper {
    /**
     * 查询关注的歌手
     * @param userFollowObject
     * @return
     */
    User_Follow_Songer getFollowSonger(User_Follow_Songer userFollowObject);

    /**
     * 关注歌手
     * @param userFollowSonger
     */
    void followSonger(User_Follow_Songer userFollowSonger);

    /**
     * 取消关注歌手
     * @param userFollowObject
     */
    void deFollowSonger(User_Follow_Songer userFollowObject);

    /**
     * 查询关注的用户
     * @param userFollowObject
     * @return
     */
    User_Follow_User getFollowUser(User_Follow_User userFollowObject);

    /**
     * 关注用户
     * @param userFollowObject
     */
    void followUser(User_Follow_User userFollowObject);

    /**
     * 取消关注用户
     * @param userFollowObject
     */
    void deFollowUser(User_Follow_User userFollowObject);

    /**
     * 获取用户对指定专辑的收藏信息
     * @param userCollectObject
     * @return
     */
    User_Collect_Album getCollectAlbum(User_Collect_Album userCollectObject);

    /**
     * 收藏专辑
     * @param userCollectAlbum
     */
    void collectAlbum(User_Collect_Album userCollectAlbum);

    /**
     * 取消收藏专辑
     * @param userCollectAlbum
     */
    void deCollectAlbum(User_Collect_Album userCollectAlbum);

    /**
     * 获取用户对指定歌单的收藏信息
     * @param userCollectObject
     * @return
     */
    User_Collect_SongList getCollectSongList(User_Collect_SongList userCollectObject);

    /**
     * 收藏歌单
     * @param userCollectObject
     */
    void collectSongList(User_Collect_SongList userCollectObject);

    /**
     * 取消收藏歌单
     * @param userCollectObject
     */
    void deCollectSongList(User_Collect_SongList userCollectObject);

    /**
     * 获取用户对指定MV的收藏信息
     * @param userCollectObject
     * @return
     */
    User_Collect_MV getCollectMV(User_Collect_MV userCollectObject);

    /**
     * 收藏MV
     * @param userCollectObject
     */
    void collectMV(User_Collect_MV userCollectObject);

    /**
     * 取消收藏MV
     * @param userCollectObject
     */
    void deCollectMV(User_Collect_MV userCollectObject);

    /**
     * 获取用户点赞信息
     * @param userLikedObject
     * @return
     */
    User_Liked getLiked(User_Liked userLikedObject);

    /**
     * 点赞
     * @param userLikedObject
     */
    void liked(User_Liked userLikedObject);

    /**
     * 取消点赞
     * @param userLikedObject
     */
    void deLiked(User_Liked userLikedObject);

    /**
     * 评论
     * @param userCommentObject
     */
    void saveComment(User_Comment userCommentObject);

    /**
     * 获取指定作品评论
     * @param userCommentObject
     * @return
     */
    List<User_Comment> getComment(User_Comment userCommentObject);
}
